package com.yuzhi.master.drainFaultManagement.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.yuzhi.common.annotation.DictFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 排水设施故障管理视图对象
 *
 * @author
 * @date 2025-09-08
 */
@Data
@ExcelIgnoreUnannotated
public class DrainFaultManagementVo implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键ID
     */
    private String id;
    /**
     * 故障标题
     */
    private String faultTitle;
    /**
     * 故障来源
     */
    private String faultSource;
    /**
     * 设备类型（如：泵站、污水厂 字典drainage_lb）
     */
    @DictFormat(defaultValue = "drainage_lb")
    private String deviceType;
    /**
     * 设备编号（如：pump004）
     */
    private String deviceCode;
    /**
     * 设备名称（如：1号泵站）
     */
    private String deviceName;
    /**
     * 故障等级（如：1=低、2=中、3=高 字典fault_level）
     */
    @DictFormat(defaultValue = "fault_level")
    private String faultLevel;
    /**
     * 故障类型（如：1=电机故障、2=传感器异常、3=校准偏差、4=管道堵塞、5=信号中断。字典fault_type）
     */
    @DictFormat(defaultValue = "fault_type")
    private String faultType;
    /**
     * 故障状态（如：1=故障中、2=维修中、3=已修复 字典fault_status）
     */
    @DictFormat(defaultValue = "fault_status")
    private String faultState;
    /**
     * 故障产生时间
     */
    private LocalDateTime faultOccurrenceTime;
    /**
     * 故障内容
     */
    private String faultContent;
    /**
     * 维修人员
     */
    private String repairPerson;
    /**
     * 维修时间
     */
    private LocalDateTime repairTime;
    /**
     * 维修详情
     */
    private String repairDetails;
    /**
     * 维修附件
     */
    private String repairAttachment;
    /**
     * 创建人ID
     */
    private String creator;
    /**
     * 创建人姓名
     */
    private String creatorName;
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    /**
     * 更新人ID
     */
    private String updater;
    /**
     * 更新人姓名
     */
    private String updaterName;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}